This is a compiled dataset of raw XRR measurements together with corresponding fit parameters, intentionally published to use as training or test data for machine learning models.
All data is provided in an hdf5 file, follwing NeXus convention with respect to the provied metadata in the hdf5 attributes. The datesets have been measured in-situ and therefore there are always stacks of curves that correspond to the diffrent layer thicknesses of the same material on top of $SiO_x$. The measured data is provied under experimental and the corresponding fit parameters under fit. Additional information is collected in metadata.
The follwing model was used:
| Air | |
|---|---|
| layer 1: thicknes, roughness and SLD fitted | |
| $SiO_x$: thicknes, roughness and SLD kept constant for each stack | |
| $Si$: roughness and SLD kept constant |
For all provied fits the q-range during fitting was limited form $q_{min} = 0.0 {\mathring{A}}^{-1}$ to $q_{max} = ?? {\mathring{A}}^{-1}$.
Please consider citing the the folloing publication: ###
The dataset itself can be cited via the zenodo doi ###
Have a look at github ### and zenodo ###. In case you wish to add further data to this repository, please use github pull requests and provide feedback through github issuse.
#prepare jupyter notebook for plots shown below
%run prepare_plot.py
from silx.io.dictdump import nxtodict
def get_data(data_dict):
q = data_dict["experiment"]["q"]
xrr = data_dict["experiment"]["data"]
thickness = data_dict["fit"]["Film_thickness"]
return q,xrr,thickness
dip_dataset=nxtodict("test.h5",path="/DIP/")
q,xrr,thickness = get_data(dip_dataset)
fig1 = prepare_figure(q,xrr,thickness,"DIP on SiOx, film thickness:")
fig1.show()
use the slider to browse through the curves corresponding to different layer thickness.
...
from reflectivity import multilayer_reflectivity
import numpy
f_thick = 1e-10 * numpy.array([dip_dataset["fit"]["SiOx_thickness"],thickness[0]])
f_rough = 1e-10 * numpy.array([dip_dataset["fit"]["Si_roughness"],dip_dataset["fit"]["SiOx_roughness"],dip_dataset["fit"]["Film_roughness"][0]])
f_sld = 1e14 * numpy.array([dip_dataset["fit"]["Si_sld"],dip_dataset["fit"]["SiOx_sld"],dip_dataset["fit"]["Film_sld"][0]])
q_si = 1e10 * q
multilayer_reflectivity(q,f_thick,f_rough,f_sld)
array([1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,
1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,
1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,
1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.])
f_thick,f_rough,f_sld,q_si
(array([1.31719725e-09, 4.41597735e-10]),
array([9.79595657e-11, 2.80961888e-10, 8.75659831e-13]),
array([1.97116032e+15+1.95154244e+13j, 1.67249966e+15+1.65585420e+13j,
5.85981129e+14+3.23593970e+11j]),
array([4.700e+07, 9.500e+07, 1.420e+08, 1.900e+08, 2.370e+08, 2.850e+08,
3.320e+08, 3.800e+08, 4.270e+08, 4.750e+08, 5.220e+08, 5.700e+08,
6.170e+08, 6.650e+08, 7.120e+08, 7.600e+08, 8.070e+08, 8.550e+08,
9.020e+08, 9.490e+08, 9.970e+08, 1.044e+09, 1.092e+09, 1.139e+09,
1.187e+09, 1.234e+09, 1.282e+09, 1.329e+09, 1.377e+09, 1.424e+09,
1.472e+09, 1.519e+09, 1.567e+09, 1.614e+09, 1.662e+09, 1.709e+09,
1.756e+09, 1.804e+09, 1.851e+09, 1.899e+09, 1.946e+09, 1.994e+09,
2.041e+09, 2.089e+09, 2.136e+09, 2.184e+09, 2.231e+09, 2.279e+09,
2.326e+09, 2.374e+09, 2.421e+09, 2.468e+09, 2.516e+09, 2.563e+09,
2.611e+09, 2.658e+09, 2.706e+09, 2.753e+09, 2.801e+09, 2.848e+09,
2.896e+09, 2.943e+09, 2.991e+09]))